【iOSDC Japan 2023 レポート】「正規表現を”微分”する!?爆速で自作できる正規表現エンジン」を聞いてきた。
はじめに
年に一度のiOSエンジニアの為のお祭り iOSDC Japan 2023に参加しています。
せっかくなので、参加したセッションのレポートを書きたいと思います。
正規表現を"微分"する!?爆速で自作できる正規表現エンジン
登壇者
概要
昨年の「正規表現って結局何なのさ?〜エンジニアのためのコンピューターサイエンス入門〜」では主に理論の面から正規表現が何なのか話をさせて頂きました。
対して今年は実際に正規表現エンジンの実装に関する話をします。
正規表現エンジンの実装ではオートマトン型と仮想マシン型が主流です。
前者は正規表現から決定性有限オートマトンを、後者は、正規表現をバイトコードにコンパイルし仮想マシンを作成する方法です。
いずれの方法でも正規表現からオートマトンや仮想マシンを生成しなければならず、その実装はそれなりに大変です。
しかし正規表現が文字列にマッチするかどうかの判定であれば正規表現を"微分"するという方法があるのです。
本セッションではその原理と簡易的な実装を紹介します。
またオートマトン型、VM型との比較も可能な限りお伝えします。
引用: fortee
資料
感想
正規表現って結局何なのさ?正規表現ってなんだか難しい。という先入観があるので、もう少し正規表現に寄り添うという意味でもお話を聞いてきました。
去年も正規表現に関する登壇をされており、その時もとてもわかりやすく説明されていました。
前回の復習から始まり、
- 正規表現を"微分する"とは
- 自作エンジンを作成
そして、登壇内で登場した自作エンジンはGItHub - MyRegexから確認することができ、SPM対応されているとのことです。
ただ、このエンジンを実用で使う時は来ないだろうとおっしゃられていましたが、、w
なので、リポジトリにも注意書きがあります。
これは理論上の説明のみを目的としたサンプルであり、実用的なものではありません。
分かりやすい資料を通じて、正規表現がどのような動きになっているのか視覚的にもわかりやすかったです。少し正規表現に寄り添えた気がします。 毎回資料がカッコよいのでフォントを参考にしたい。
おわりに
少しずつ正規表現に寄り添えている気がするので来年もお願いします。
iOSDC 2023 レポート関連
Day0
- 「タクシーアプリの多言語対応・ローカライズにおける課題と解決策」を聞いてきた。
- 「Appleにおけるプライバシーの全容を把握する」を聞いてきた。
- 「SwiftUIの進化についていくためにやったこと」を聞いてきた。
- 「SharePlayの歴史と進化 - そしてvisionOSへ」を聞いてきた。
- 「UIKit ベースの Custom UIContentConfiguration API を用いた複雑なカスタムセルの作り方」を聞いてきた。
Day1
- 「TextKit 2 時代の iOS のキーボードとテキスト入力と表示のすべて」を聞いてきた。
- 「PushToTalkで作るトランシーバー」を聞いてきた。
- 「6年間運用したiOSアプリのリアーキテクトについて具体的に解説」を聞いてきた。
- 「Mastering SwiftSyntax」を聞いてきた。
- 「配信アプリのためのリアルタイムプッシュ通知ぼかしの夢 〜低負荷で高速なプライバシー保護を目指して」を聞いてきた。
- 「macOSで自分のカメラを作ってみよう – Core Media IO Extension」を聞いてきた。
- 「なぜ、弊社はFlutterを捨ててネイティブ化(Swift / Kotlin)にコミットしたのか」を聞いてきた。
- 基礎から理解する!来年春までに対応すべきプライバシーの変更点
- 「モバイルアプリの行動ログの運用つらさ解消法」を聞いてきた。